<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>length</title>
  <script>

    /**
     * String的属性：length
     */

    /**
     * 字符串的 length 只读属性包含字符串的长度（以 UTF-16 代码单元表示）。
     * 不可写，不可枚举，不可配置
     */

    /**
     * 该属性返回字符串中的代码单元数量。JavaScript 使用 UTF-16 编码，其中每个 Unicode 字符可以编码为一个或两个代码单元
     * 因此 length 返回的值可能与字符串中 Unicode 字符的实际数量不匹配。
     * 使用表情符号、数学符号或晦涩的汉字，你可能需要考虑代码单元和字符之间的差异。
     */

    /** 语言规范要求字符串的最大长度为 253 - 1 个元素 */

    /** 
     * 在 V8（Chrome 和 Node 使用）中，最大长度为 229 - 24（~1GB）。在 32 位系统上，最大长度为 228 - 16（~512MB）。
     * 在 Firefox 中，最大长度为 230 - 2（~2GB）。在 Firefox 65 之前，最大长度为 228 - 1（~512MB）。
     * 在 Safari 中，最大长度为 231 - 1（~4GB）。
     */

    /** 对于空字符串，length 为 0。 */

    const string = "😂"; // 这个表情占据两个代码单元
    console.log(string.length); // 2


  </script>
</head>

<body>

</body>

</html>